package graphics.raytracing;

public interface Window<T extends Tracable> {

	public abstract Ray determineRay(int x, int y);

	public abstract float[] getColor(int x, int y);
	
	public abstract void color(int i, int j, float[] color);
	public abstract void color(int[] _xy, CastResult<T> result);
	public abstract int[] xy();

	public abstract float[][][] getView();

	public abstract void waitForSet();

	public abstract float[] getCenter();

	public abstract void reset();

	public abstract void setShader(Shader<T> s);

	public abstract Shader<T> getShader();
}